home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 36 / Amiga Format CD36 (1999-01-22)(Future Publishing)(GB)[!][issue 1999-02].iso / -websites- / amosfactory / downloads / gui170.lha / GuiShell2.Amos / GuiShell2.amosSourceCode < prev    next >
AMOS Source Code  |  1998-03-29  |  6KB  |  193 lines

  1. '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2. '  AMOSPro GUI Compiler Shell V1.22     -  * NON-AMCAF Version *   
  3. '  ï¿½1996-1997 Dairymen Soft  
  4. '  Written by Pietro Ghizzoni - Amos Professional Team Coordinator 
  5. '  E-Mail: ghizzo@agonet.it
  6. '
  7.  
  8. Global FILE$,SOURCE$,DEST$,DEF$,JUMP$,LIB$,TITLE$,HAND,HAND2,_PATH$
  9.  
  10. Track Play 7 : Extension_24_0018 1,1,20 : Extension_24_0494 1,13,0,63 : Extension_24_009E 1,9,-1,1 : Extension_24_009E 1,13,-1,1
  11. DEF$=" WB NODEF NOERR TYPE=0" : JUMP$=" NOLONG" : LIB$=" INCLIB" : Restore ABOUT
  12.  
  13. For I=1 To 4 : Read A$ : M$=M$+A$+Chr$(10) : Next : TITLE$="GUI Compiler Shell Request"+Chr$(0)
  14. _PATH$=Resource$(0)+"GUICmp"
  15. If Exist(_PATH$)=False
  16.    
  17.    Repeat 
  18.       REQ["Load GUI compiler",""]
  19.    Until Extension_24_0178 ="GUICmp"
  20.    _PATH$=FILE$
  21.    
  22. End If 
  23.  
  24. Do 
  25.    
  26.    GAD= Extension_24_0034 : CD= Extension_24_0052 : C$= Extension_24_0060 : ERR["",0]
  27.    
  28.    If GAD=-1
  29.       Track Stop : Extension_24_0130 : Extension_24_0090 : End 
  30.       
  31.    Else If GAD=0
  32.       REQ["Select source program","#?.Amos"]
  33.       If Param=True
  34.          SOURCE$=FILE$ : Extension_24_009E 1,2,0,Varptr(FILE$) : C$=Left$(SOURCE$,Len(SOURCE$)-5) : Goto SD
  35.       End If 
  36.       
  37.    Else If GAD=1
  38.       SD2:
  39.       If SOURCE$><""
  40.          Repeat 
  41.             A=1 : REQ["Select destination program",""]
  42.             If Param=True
  43.                A= Extension_24_0150(TITLE$,"File already exist! Overwrite?","OK|Cancel")
  44.                If A : Kill FILE$ : End If 
  45.                
  46.             End If 
  47.          Until A><0
  48.          If FILE$><"" : DEST$=FILE$ : Extension_24_009E 1,3,0,Varptr(FILE$) : End If 
  49.       Else 
  50.          ERR["Select source program!",1]
  51.       End If 
  52.       
  53.    Else If GAD=2
  54.       If Exist(C$)
  55.          SOURCE$=C$ : C$=Left$(SOURCE$,Len(SOURCE$)-5) : Goto SD
  56.       Else 
  57.           Extension_24_009E 1,2,0,Varptr(SOURCE$)
  58.       End If 
  59.       
  60.    Else If GAD=3
  61.       If SOURCE$><""
  62.          SD: DEST$=C$
  63.          If Exist(DEST$)
  64.             A= Extension_24_0150(TITLE$,"File already exist! Overwrite?","OK|Cancel")
  65.          If A=0 : Goto SD2 Else Kill DEST$ : End If 
  66.          End If 
  67.       Else 
  68.          ERR["Select source program!",1]
  69.       End If 
  70.        Extension_24_009E 1,3,0,Varptr(DEST$)
  71.       
  72.    Else If GAD=4
  73.       C0MPILE
  74.       
  75.    Else If GAD=5
  76.    If CD=0 : JUMP$=" NOLONG" Else JUMP$=" LONG" : End If 
  77.       
  78.    Else If GAD=6
  79.    If CD=0 : LIB$=" INCLIB" Else LIB$=" NOLIB" : End If 
  80.       
  81.    Else If GAD=10
  82.        Extension_24_032E 1
  83.       
  84.    Else If GAD=8
  85.       A= Extension_24_0150("About",M$,"OK")
  86.       
  87.    Else If GAD=11
  88.    If CD : Track Play 7 Else Track Stop : End If 
  89.       
  90.    Else If GAD=-6
  91.        Extension_24_0340 1
  92.       
  93.    Else If GAD=7
  94.       Repeat 
  95.          REQ["Select file to delete...",""]
  96.       Until Param or FILE$=""
  97.       If Len(FILE$)
  98.          A= Extension_24_0150(TITLE$,"Delete "+FILE$+"!  Are you sure?","Yes|No")
  99.          If A : Kill FILE$ : End If 
  100.       End If 
  101.       
  102.       
  103.    End If 
  104.    
  105. Loop 
  106.  
  107. Procedure REQ[F$,P$]
  108.    
  109.    F$= Extension_24_0162(F$+Chr$(0),"","",P$+Chr$(0)) : FILE$=F$
  110.    
  111. End Proc[Exist(FILE$)]
  112. Procedure C0MPILE
  113.    
  114.    If SOURCE$="" Then ERR["Select a source program!",1] : Pop Proc
  115.    If DEST$="" Then ERR["Select destination program!",1] : Pop Proc
  116.    
  117.    V$=Chr$(34) : COM$=" FROM "+V$+SOURCE$+V$+" TO "+V$+DEST$+V$+DEF$+JUMP$+LIB$
  118.    Timer=0 : _EXEC[_PATH$+COM$] : T=Timer : Trap Open In 1,DEST$
  119.    
  120.    If Errtrap
  121.       A= Extension_24_0150(TITLE$,"Compilation Error!","Ooopss!") : ERR["Abort...",1]
  122.    Else 
  123.       M=T/3000 : S=(T/50)-(M*60) : TIME$=(Str$(M)+":"+Str$(S))-" "
  124.       A= Extension_24_0150(TITLE$,"Time used "+TIME$+" secs","OK") : Close : COK=1
  125.    End If 
  126.    
  127.    Dreg(1)=HAND : A=Doscall(-36) : Dreg(1)=HAND2 : A=Doscall(-36)
  128.    If COK Then PURIFY
  129.    
  130. End Proc
  131. Procedure _EXEC[C$]
  132.    
  133.    RAW$="RAW:28/69/584/128/GUI Compiler Output"+Chr$(0) : Dreg(1)=Varptr(RAW$) : Dreg(2)=1004
  134.    HAND=Doscall(-30)
  135.    
  136.    NIL$="NIL:"+Chr$(0) : Dreg(1)=Varptr(NIL$) : Dreg(2)=1004
  137.    HAND2=Doscall(-30)
  138.    
  139.    If HAND
  140.       C$=C$+Chr$(0) : Dreg(1)=Varptr(C$) : Dreg(2)=HAND2 : Dreg(3)=HAND
  141.       F=Doscall(-222)
  142.    End If 
  143.    
  144. End Proc
  145. Procedure PURIFY
  146.    
  147.    F$="S:AMOSPro_Interpreter_Config" : Trap Open In 1,F$
  148.    If Errtrap Then F$="S/AMOSPro_Interpreter_Config" : Trap Open In 1,F$
  149.    
  150.    If Errtrap=0
  151.       ERR["Purify'ing code!",0]
  152.       L=Lof(1) : Close : Reserve As Work 10,L+2
  153.       Bload F$,Start(10) : S=Start(10)
  154.       If Peek$(S,4)="PId1"
  155.          STAD=S+Leek(S+4)+8
  156.          If Peek$(STAD,4)="PIt1"
  157.             A=STAD+8
  158.             For ST=1 To 64
  159.                L=Peek(A+1) : Exit If L=$FF
  160.                Add A,L+2
  161.                If ST=15 : DAT1=A-(STAD+8) : End If 
  162.             Next 
  163.          End If 
  164.       End If 
  165.       DAT=A-(STAD+8) : S$=Peek$(STAD+8,DAT1) : Open In 1,DEST$ : L=Lof(1) : Close 
  166.       Trap Reserve As Work 10,L+2
  167.       
  168.       If Errtrap=0
  169.          Bload DEST$,Start(10) : D=Hunt(Start(10) To Start(10)+L,S$)-Start(10)
  170.          If D>0
  171.             Append 1,DEST$ : Pof(1)=D : S$=String$(Chr$(0),DAT) : S=Varptr(S$) : Ssave 1,S To S+DAT : Close 
  172.          End If 
  173.       End If 
  174.       ERR["",0]
  175.    Else 
  176.       A= Extension_24_0150(TITLE$,"Unable to open AmosPro Interpreter Config File!","OK")
  177.       ERR["Purify not done!",1]
  178.    End If 
  179.    
  180. End Proc
  181. Procedure ERR[M$,A]
  182.  
  183.    M$=M$+Chr$(0) : Extension_24_009E 1,12,0,Varptr(M$) : If A Then Extension_24_038C 
  184.  
  185. End Proc
  186.  
  187. ABOUT:
  188. Data "AMOSPro Gui Compiler Shell V1.22"
  189. Data "     ï¿½1996-97 Dairymen Soft"
  190. Data "  Written by: Pietro Ghizzoni"
  191. Data "   E-Mail:  ghizzo@agonet.it"
  192.  
  193. ' Amos Professional Team production